package pt.MyDictionary.MVC; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Map.Entry; import pt.MyDictionary.model.*; import pt.MyDictionary.strategy.*; public class DataAcess { private Interface view; private SerializeDictionary serialize; Add add; Remove remove; public DataAcess(Interface v, SerializeDictionary m){ this.view = v; this.serialize = m; updateList(); //serialize.execute(); addListeners(); updateConsistency(); } class Addition implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { add = new Add(); add.AddActionListener(new AddExe()); } } class AddExe implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { String word = add.getWordF(); String synonyms = add.getSynonymF(); String description = add.getDescriptionF(); Word c = new Word(word,synonyms,description); serialize.getDictionary().add(c); view.updateList(); updateList(); add.getFrame().dispose(); updateConsistency(); view.ForSearchActionListener(new Search()); view.addMause(); //addListeners(); } } class Removal implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { remove = new Remove(); remove.AddActionListener(new RemoveExe()); } } class RemoveExe implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { String word =remove.getWordF(); serialize.getDictionary().remove(word); view.updateList(); updateList(); remove.getFrame().dispose(); updateConsistency(); view.ForSearchActionListener(new Search()); view.addMause(); //addListeners(); } } class Save implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { serialize.saveJson(); } } class Search implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { String word = view.getSearchBar().getText(); String toShow = serialize.getDictionary().sSearch(word); view.setPanelText(toShow); /* Cuvant c = model.getDictionar().search(cuvant); String[] sinonime = c.getSinonime(); String sinonimeString = new String(); for(int i = 0; i<sinonime.length; i++){ sinonimeString += sinonime[i]; if (i<(sinonime.length - 1)) sinonimeString += ", "; } view.setPanouText("\nCuvant: "+c.getCuvant()+"\n\nSinonime: "+sinonimeString+"\n\nExplicatie: "+c.getDescriere()); */ } } private void updateList(){ Dictionary dictionary = serialize.getDictionary(); for(Entry<String, Word> entry: dictionary.getWords().entrySet()){ view.addWord(entry.getValue().getWord()); } } private void updateConsistency(){ boolean ok = serialize.getDictionary().checkConsistency(); if (ok == true) view.setConsistency("Consistency: yes"); else view.setConsistency("Consistency: no"); } private void addListeners(){ view.ForAddActionListener(new Addition()); view.ForRemoveActionListener(new Removal()); view.ForSaveActionListener(new Save()); view.ForSearchActionListener(new Search()); view.addMause(); } }